package day05;
import java.util.Arrays;
//求数组元素的最大值, 并将其存储到数组最后一个元素的下一个位置
import java.util.Arrays;
public class MaxOfArray {
    public static void main(String[] args) {

        int[] arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) (Math.random() * 100);
            System.out.println(arr[i]);
        }

        //找最大值:
        //                    0  1  2 3
        //假设:int[] arr = = {12,56,89,8};
        //max=12/56/89
        int min = arr[0];
        int max = arr[0];   //假设第1个元素为最大值
        for (int i = 1; i < arr.length; i++) {  //遍历剩余元素
            if (arr[i] > max) { //若剩余元素大于max
                max = arr[i];   //将max修改为较大的
            } else if (arr[i] < min) {
                min = arr[i];
            }
        }
        System.out.println("最大值为:" + max);
        System.out.println("最小值为:" + min);

        arr = Arrays.copyOf(arr, arr.length + 2);   //扩容
        arr[arr.length - 2] = max;  //将最大值max赋值到最后一个元素上
        arr[arr.length - 1] = min;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        //5)数组的复制:
        /*
        int[] a = {10, 20, 30, 40, 50};
        int[] b = new int[6];   //20, 30, 40, 50, 0, 0
        //a:源数组
        //1:源数组的起始下标
        //b:目标数组
        //0:目标数组的起始下标
        //4:要复制的元素个数
        System.arraycopy(a, 1, b, 0, 4);

        for(int i = 0; i < b.length; i++) {
            System.out.println(b[i]);
        }
         */

        /*
        int[] a = {10, 20, 30, 40, 50};
        //a:源数组
        //b:目标数组
        //6:目标数组的长度
        //  --若目标数组长度>源数组长度, 则末尾补默认值
        //  --若秒数组长度<源数组长度, 则将末尾的截掉
        int[] b = Arrays.copyOf(a, 6);   //灵活性差

        for(int i = 0; i < b.length; i++) {
            System.out.println(b[i]);
        }
         */
    }
}
